前一篇我們講了Synchronous的概念,簡單用銀行開戶的例子說明它的運作流程。
今天會用同一個例子細講syn的運作流程及其問題點所在。
好的~讓我們開始吧!!
假如你要去銀行開戶,將要辦理的相關文件交給櫃台,從填寫申請表→完成申請開戶的流程如下圖:
從填寫申請表開始直到審核結果出來,每一項都需要等待前一項完成才能做下一件事情,其中有一項失敗像是申請表內容不符格式,就得回去重寫再回來"排隊",這樣非常浪費資源跟時間在等待。
而這只是做一件事情,如果你今天想要在銀行做兩件事情:
用Synchronous的方式做會如何呢?
單純提款就要等開戶手續完成,而前面這些步驟光等待就浪費你一整天的時間。
你能想像你白天進銀行,等要提款的時候天已經黑了!? 這實在太沒效率!
當然你可以先去提款,接著辦理開戶,還是沒有解決等待時間太久的問題。
如果第二件事情不是提款,而是跟開戶一樣手續繁瑣的事情怎麼辦?
如果不只兩件事情要處理怎麼辦?
這些問題最後會造成浪費時間和資源,甚至讓使用者也跟著等待,對服務的觀感就會降低!
根據剛剛的兩個例子,我們總結下Syn的幾個限制:
不合適的場景使用Synchronous使整個過程變得緩慢而且效果很差,同時影響了客戶的體驗和銀行的運作效率。相比之下,這種時候可以採取Asynchronous的方式,讓客戶在提交開戶申請後不必在櫃檯前面等待,可以去處理其他事情,而銀行也可以在後台處理手續,提高效率和客戶的觀感。
本篇用兩個例子說明了"不合適的場景使用Synchronous"造成的問題,當然不是說Synchronous不好,它本身很好,只是要用在適合的地方上。
下一篇開始是Asynchronous的篇章,說明Asy的運作機制、流程與優點所在。
好了~~今天就說到這邊!!